These are the other-immediate types. We specify them including all low eight bits, including the other-immediate tag, so we can think of the type bits as one type – not an other-immediate major type and a subtype. Also, fetching a byte and comparing it against a constant is more efficient than wasting even a small amount of time shifting out the other-immediate tag to compare against a five bit constant.
Number (< 30) bignum 10 ratio 14 single-float 18 double-float 22 complex 26 Array (>= 30 code 86) Simple-Array (>= 20 code 70) simple-array 30 Vector (>= 34 code 82) simple-string 34 simple-bit-vector 38 simple-vector 42 (simple-array (unsigned-byte 2) (*)) 46 (simple-array (unsigned-byte 4) (*)) 50 (simple-array (unsigned-byte 8) (*)) 54 (simple-array (unsigned-byte 16) (*)) 58 (simple-array (unsigned-byte 32) (*)) 62 (simple-array single-float (*)) 66 (simple-array double-float (*)) 70 complex-string 74 complex-bit-vector 78 (array * (*)) -- general complex vector. 82 complex-array 86 code-header-type 90 function-header-type 94 closure-header-type 98 funcallable-instance-header-type 102 unused-function-header-1-type 106 unused-function-header-2-type 110 unused-function-header-3-type 114 closure-function-header-type 118 return-pc-header-type (a.k.a LRA) 122 value-cell-header-type 126 symbol-header-type 130 base-character-type 134 system-area-pointer-type (header type) 138 unbound-marker 142 weak-pointer-type 146 structure-header-type 150